Transformation of images may be achieved by a rotation and/or scaling, i.e., an extension or stretching, of an image of an object stored as a pixel database or a pixel map. Such methods are used in graphics programs for rotating images of an object through any desired angle and for scaling them in the x direction and/or the y direction. They are used especially for representing a pointer, symbols or a map on a matrix-shaped indicator device of a motor vehicle, e.g. an LCD display.
A pointer is generally displayed on the display unit of a motor vehicle with respect to an angle of rotation, which depends on a parameter of a driving state variable, such as vehicle speed, engine speed, fuel tank content or a temperature. In this context, the image of the object of the pointer to be rotated may generally be formed in color and have different transparencies for reproduction in front of a background image, so that to each image point of the target image a plurality of image point data has to be assigned, such as the primary colors red (hereinafter represented as R), yellow (hereinafter represented as G) and blue (hereinafter represented as B) and possibly also a transparency value α, or YUV and possibly α. In navigational systems, prestored map data are scaled for adjusting to the size or pixel number of the display device, and the indicated road map is partially aligned continuously by extension in the travel direction such that the vertical direction of the display unit corresponds to the direction of travel. In addition, a compass indication may also be represented in the image.
Furthermore, in graphics applications, for example, scanned-in images may be aligned as a rectangle, images may be rotated before being printed, for the optimum use of the format of the paper, and graphics symbols may be placed in CAD programs, such as during the planning of furnishing a home.
Regarding rotation and/or scaling of images and objects, fundamental differences are made between methods that are pixel-oriented and vector-oriented. Both methods may be imaged in hardware, software or a mixture of the two.
An image of a method in a hardware implementation is defined by an algorithm that is permanently wired on a chip, as a rule, in the graphics controller. This hardware block awaits agreed-upon parameters in the source data, processes these, and makes the result available again, for example, in a memory region. Thus, algorithms in hardware only have to be supplied with few data and work out the wired problem very rapidly. The algortihm itself, however, may no longer be changed.
An image in a software implementation is performed, for instance, on a usual computing device, such as a personal computer. A microprocessor receives instructions from a software program. The software program includes an algorithm, and processes the instructions with the aid of the microprocessor and associated peripheral units. An algorithm in software is very flexible because of the ease of making changes, but the software algorithm runs slower than the hardware algorithm because of the purely sequential processing method of the microprocessor.
Furthermore, for example, in personal computers having an efficient graphics board for game applications, combined systems are used in which the software takes over the extension of the vector data, but the drawing of the new image is implemented by a hardware block in the graphics controller. This solution combines the flexibility of the software with the speed of hardware imaging. In this context, for instance, a graphics controller, a microprocessor, a program memory and a working memory may be connected via a bus system. The software for a microprocessor and all the required graphics data, including the source pixel image, are stored in the program memory. The working memory is used by the microprocessor and the graphics controller, when needed, as temporary memory, and includes an image refresh memory, on which the target image to be shown on the display unit is stored. The image stored in the image refresh memory is cyclically read out by the graphics controller, for instance, 60 times per second, and sent to the display unit.
In pixel-oriented methods, the object image is described as a pixel map graphic. In the extension and/or scaling of pixel map graphics, each individual pixel of the object image is computed anew by an algorithm. In the case of a continuous adjustment of the object image to a changeable angle of rotation, such computing in real time during a software implementation leads to great computing effort. Implementations using hardware are not used, especially in the automotive field. In order to represent, for example, rotary pointers, for each possible pointer position an image having target image point data may be computed in advance and stored. Thus, for each pointer position, only the image point data of the image have to be called up and represented. It is a disadvantage in such a method wherein, particularly in case of higher resolution and colored, transparent representations, considerable storage space is required.
In vector-oriented methods, the object image is described by vectors stored beforehand. The rotation and/or scaling of the vector graphics is accomplished by the recalculation of the individual vectors followed by redrawing of the image. In this context, a pointer is described, for example, by a pointer contour. To show the pointer, the vectors are rotated in real time at their respective angle of rotation.
Since in this method only the vectors of the pointer contour are stored, the required storage space is low. In the continuous representation of the pointer, only the transformation of the vectors as a function of a parameter has to be calculated, so that the computing effort is also limited. However, using such methods generally only allow description of simpler representations of a pointer, since in particular costlier shape formations and pointer representations, having several color shades and transparency values, either require a large number of vectors or a description of each image point by its own vector. In the case of a software implementation, this leads to a computing effort that may in practice not be able to be carried out in real time, so that, at all events, costly hardware implementations are used.
German Published Patent Application No. 198 16 795 describes a method for representing moved objects in pixel map format on a matrix-shaped display device in which, for various object representations of a predetermined path line, pixel maps are in each case calculated in advance and stored, and the respective positioning of the object along the path line is performed by reading and display of the pixel maps as well as the computing of a temporary pixel map, if necessary, by interpolation from the image point data of the prestored pixel maps. Thus the methods described above, of storage of all image point data as well as the computation of each target image based on a prestored object image are combined. However, this has the disadvantage that either a large number of pointer illustrations has to be prestored, using the corresponding storage space, or the quality of the illustration is visibly impaired during the interpolation.